package com.hl.order.service.impl;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hl.order.mapper.GoodsMapper;
import com.hl.order.domain.Goods;
import com.hl.order.service.IGoodsService;

/**
 * 商品列表Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-08-08
 */
@Service
public class GoodsServiceImpl implements IGoodsService 
{
    @Autowired
    private GoodsMapper goodsMapper;

    /**
     * 查询商品列表
     * 
     * @param goodsId 商品列表主键
     * @return 商品列表
     */
    @Override
    public Goods selectGoodsByGoodsId(Integer goodsId)
    {
        return goodsMapper.selectGoodsByGoodsId(goodsId);
    }

    /**
     * 查询商品列表列表
     * 
     * @param goods 商品列表
     * @return 商品列表
     */
    @Override
    public List<Goods> selectGoodsList(Goods goods)
    {
        return goodsMapper.selectGoodsList(goods);
    }

    /**
     * 新增商品列表
     * 
     * @param goods 商品列表
     * @return 结果
     */
    @Override
    public int insertGoods(Goods goods)
    {
        return goodsMapper.insertGoods(goods);
    }

    /**
     * 修改商品列表
     * 
     * @param goods 商品列表
     * @return 结果
     */
    @Override
    public int updateGoods(Goods goods)
    {
        return goodsMapper.updateGoods(goods);
    }

    /**
     * 批量删除商品列表
     * 
     * @param goodsIds 需要删除的商品列表主键
     * @return 结果
     */
    @Override
    public int deleteGoodsByGoodsIds(Integer[] goodsIds)
    {
        return goodsMapper.deleteGoodsByGoodsIds(goodsIds);
    }

    /**
     * 删除商品列表信息
     * 
     * @param goodsId 商品列表主键
     * @return 结果
     */
    @Override
    public int deleteGoodsByGoodsId(Integer goodsId)
    {
        return goodsMapper.deleteGoodsByGoodsId(goodsId);
    }


    /**
     * 查询商品列表
     *
     * @param shopId 商品列表主键
     * @return 商品列表
     */
    @Override
    public List<Goods> selectGoodsByShopId(Integer shopId) {
        return goodsMapper.selectGoodsByShopId(shopId);
    }

    /**
     * 根据店铺ID查询已上架商品数量
     *
     * @param shopId 店铺ID
     * @return 已上架商品数量
     */
    @Override
    public int countOnlineGoodsByShopId(Integer shopId)
    {
        return goodsMapper.countOnlineGoodsByShopId(shopId);
    }

    /**
     * 根据店铺ID查询已下架商品数量
     *
     * @param shopId 店铺ID
     * @return 已下架商品数量
     */
    @Override
    public int countOfflineGoodsByShopId(Integer shopId)
    {
        return goodsMapper.countOfflineGoodsByShopId(shopId);
    }

    /**
     * 根据店铺ID查询商品总数
     *
     * @param shopId 店铺ID
     * @return 商品总数
     */
    @Override
    public int countTotalGoodsByShopId(Integer shopId)
    {
        return goodsMapper.countTotalGoodsByShopId(shopId);
    }

    /**
     * 根据店铺ID查询库存售罄商品数量
     *
     * @param shopId 店铺ID
     * @return 库存售罄商品数量
     */
    @Override
    public int countOutOfStockGoodsByShopId(Integer shopId)
    {
        return goodsMapper.countOutOfStockGoodsByShopId(shopId);
    }
}
